import type { ApiDelete, PageApi } from '@/api/api'
import type { Dept } from '@/api/system/dept/type.ts'
import type { Role } from '@/api/acl/role/type.ts'
import type { Post } from '@/api/system/post/type.ts'
export type AdminLoginVo = {
  accessToken: string
  refreshToken: string
  tokenType: 'Bearer '
  expiresIn: number
}

export type AdminLoginDTO = {
  username: string
  password: string
  verifyCode: string
  uuid: string
}

export type RefreshTokenDTO = {
  refreshToken: string
}
export interface UserAddDTO {
  nickname?: string
  account?: string
  password?: string
  avatar?: string
  email?: string
  phone?: string
  status?: number
  deptId?: string
  postId?: string
  tenantId?: string
}
export interface UserModDTO extends UserAddDTO {
  id?: string
}
export interface UserQueryDTO extends PageApi { }
export interface User extends UserAddDTO, ApiDelete { }
export interface UserVo extends User { }
export interface TenantUserVo {
  deptList: Dept[]
  roles: Role[]
  posts: Post[]
}
export interface R2u {
  userId: string
  roleIds: string[]
}
